<?php

namespace app\api\controller;

use addons\shopro\model\Order;
use addons\shopro\model\OrderItem;
use app\common\controller\Api;
use app\common\library\Log;
use app\common\model\ShopOrder;
use app\common\model\User;
use think\Db;

/**
 * 示例接口
 */
class Demo extends Api
{

    //如果$noNeedLogin为空表示所有接口都需要登录才能请求
    //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
    //如果接口已经设置无需登录,那也就无需鉴权了
    //
    // 无需登录的接口,*表示全部
    protected $noNeedLogin = ['test', 'test1'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = ['test2'];


    public function test1()
    {
          // 小程序参数
      $appId = 'wx40ca236c146a8e4f'; // 替换为您的小程序 App ID
      $secret = 'cdb3fca214b2da1f9747418365e05aea'; // 替换为您的小程序 App Secret

      $accessToken = getAccessToken($appId, $secret);

      // 生成二维码
      $scene = 'store_id=3'; // 替换为您的小程序页面路径
      $width = 600; // 二维码宽度
      $qrcode = generateQrCode($accessToken, $scene, $width);
      $filename = '66.png'; // 保存的文件名

      $directoryPath = 'uploads';
      $path = $directoryPath.'/'.$filename;

      file_put_contents($path, $qrcode);

        $this->success('返回成功', ['action' => 'test1']);
    }


    public function test()
    {
        $order = Order::where('order_sn','202312091728601734002000')->find();

        $user = User::get($order['user_id']);
        $orderItem = OrderItem::where('order_id',$order['id'])->find();
        $shopname = '';
        if($orderItem){
            $shop = Db::table('fa_shopro_store')
                ->where('id',$orderItem['store_id'])
                ->find();
            $shopname = $shop?$shop['name']:'';
            $shops = Db::table('fa_shopro_user_store')
                ->where('store_id',$orderItem['store_id'])
                ->select();
            //print_R($shops);die();
            foreach($shops as $v){
                $oauth = Db::table('fa_shopro_user_oauth')->where('user_id',$v['user_id'])->find();
                echo $oauth['openid'].PHP_EOL;
                if(!empty($oauth['openid'])){
                    $param = [
                        'first' => '您有一笔交易',
                        'keyword1' => date('Y年m月d日 H:i'),
                        'keyword2' => $shopname,
                        'keyword3' => '用户'.$user?$user['mobile']:'',
                        'keyword4' => '消费',
                        'keyword5' =>'支付'.$order['pay_fee'].'元',
                        'remark' => $order['remark'],
                        'openid' => $oauth['openid'], //查询商户的openid
                    ];
                   $res =  ShopOrder::sendmsg($param);
                   \think\Log::log('打印发送结果start');
                   \think\Log::log($res);
                   \think\Log::log('打印发送结果end');
                   //print_R($res);
                }

            }
        }

        die();
        //ROOT_PATH.'extend/shande/cert/sand.cer';
        // 示例用法


        $backgroundImage = ROOT_PATH.'public/bg.png';
        $qrCodeImage = ROOT_PATH.'public/uploads/66.png';
        $title = '测试门店1';
        $outputImagePath = ROOT_PATH.'public/poster.png';

        generatePoster($backgroundImage, $qrCodeImage, $title, $outputImagePath);
        die();
        /*$appId = 'wx40ca236c146a8e4f'; // 替换为您的小程序 App ID
        $secret = 'cdb3fca214b2da1f9747418365e05aea'; // 替换为您的小程序 App Secret

        $accessToken = getAccessToken($appId, $secret);

        $touser = 'ouqzk5W9IMqgrthXN72tKc0VSQPw'; // 替换为接收统一消息的用户的openid
        $templateId = 'mz7C30a8efQwAwAbXP-ZAE67Y-p-k0QBpaA8BcYUyG0'; // 替换为统一消息的模板ID

        $page = 'pages/app/merchant/index';
        $data = array(
            'first' => array('value' => '您有一笔交易'), // 替换为模板中的参数及其对应的值
            'keyword1' => array('value' => '2023年5月26日 12:30'),
            'keyword2' => array('value' => '张三小店'),
            'keyword3' => array('value' => '用户188****1234'),
            'keyword4' => array('value' => '消费'),
            'keyword5' => array('value' => '支付152元'),
            'remark' =>  array('value' => '支付152元'),
        );

        $response = sendUniformMessage($accessToken, $touser, $templateId, $page, $data);
// 根据接口返回的结果进行处理
        var_dump($response);
        die();*/
        ShopOrder::notify('202304420265787675002000');
        die();
        // 小程序参数
        $appId = 'wx40ca236c146a8e4f'; // 替换为您的小程序 App ID
        $secret = 'cdb3fca214b2da1f9747418365e05aea'; // 替换为您的小程序 App Secret

        $accessToken = getAccessToken($appId, $secret);
        // 示例用法
        //$accessToken = 'YOUR_ACCESS_TOKEN'; // 替换为有效的访问令牌
        $touser = 'ouqzk5W9IMqgrthXN72tKc0VSQPw'; // 替换为接收服务通知的用户的openid
        $templateId = 'N3DGih2wutueuoYpoCNusjWBfo8w3ih5lP2UNwPhezY'; // 替换为服务通知的模板ID
        $page = 'pages/index'; // 替换为服务通知点击后跳转的页面路径
        $data = array(
            'character_string1' => array('value' => 'N11111'), // 订单编号
            'amount3' => array('value' => '10'),
            'date4' => array('value' => date('Y-m-d')),
            'thing5' => array('value' => '您有一条新的消息'),
        );

        $response = sendSubscriptionMessage($accessToken, $touser, $templateId, $page, $data);
// 根据接口返回的结果进行处理
        var_dump($response);

        die();
// 获取 access_token
        $accessToken = getAccessToken($appId, $secret);

// 生成二维码
        $scene = 'pages/index/index'; // 替换为您的小程序页面路径
        $width = 1280; // 二维码宽度
        $qrcode = generateQrCode($accessToken, $scene, $width);

        // 保存二维码图片
        $filename = 'qrcode.png'; // 保存的文件名
        $directoryPath = 'uploads/';
        $path = $directoryPath.'/'.$filename;
        if(!file_exists($path)){
            if (!is_dir($directoryPath)) {
                // 目录不存在，创建目录
                mkdir($directoryPath, 0777, true);
            }
            file_put_contents($directoryPath.'/'.$filename, $qrcode);
        }


        die();
        $this->success('返回成功', $this->request->param());
    }


    /**
     * 需要登录的接口
     *
     */
    public function test2()
    {
        $this->success('返回成功', ['action' => 'test2']);
    }

    /**
     * 需要登录且需要验证有相应组的权限
     *
     */
    public function test3()
    {
        $this->success('返回成功', ['action' => 'test3']);
    }

}
